<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>

<body>
	<script>
		class Person {
			constructor(name, age) {
				this.name = name
				this.age = age
			}
			// 原型方法
			say() {
				console.log("I am father")
			}
			eat() {
				console.log("eat")
			}
		}
		// 子类继承父类的原型
		class Son extends Person {
			constructor(name) {
				// 使用父类的属性时 一定要加上 super()
				// 相当于在这里执行了父类的构造函数
				super(name, 18)
				this.name = name
				// this.say = function () {
				//     console.log("本地方法")
				// }
			}
			// 就近原则： 先执行子类本地方法然后执行原型方法，没有则去父类找（就近原则）
			// 查找顺序  本地->原型->父类
			say() {
				console.log(super.eat())
			}
		}
		// es6当中 没有变量的提升
		var xiaoming = new Son("小明")
		console.log(xiaoming.age)
	</script>
</body>

</html>